<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//Ultima verificación: 22-11-2014 ; 28-02-2015
class Asignatura extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todas las asignaturas activas o inactivas pero NO las borradas (-1) segun los filtros aplicados
	//Filtros:
	//Si idCicloLectivo es igual a cero, hay que mostrar todas las asignaturas existentes del ciclo vigente. No hay que mostrar nada si no hay ciclos vigentes.
	//Si idCicloLectivo es distinto de cero, hay que mostrar solo las asignaturas del ciclo en cuestion.
	//Lo mismo ocurre con el turno, el curso y la division.
	//Ultima verificación: 22-09-2014 ; 28-10-2014
	function consultar($idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno, el curso y la division
			if(is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno, curso y division
				if(($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos activos
					$listadoTurnos = $this->m_turno->buscarActivos();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo de filtrado
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo de filtrado
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Si el ciclo lectivo pasado por la url es igual a cero entonces hay que seleccionar el ciclo vigente, en caso contrario el que haya sido pasado
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							//Le paso a la vista el id del ciclo lectivo vigente
							$datos['idCicloLectivoSel'] = $cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							//No hay ciclo lectivo seleccionado ni vigente
							$datos['idCicloLectivoSel'] = 0;
						}
					}else{
						//Le paso a la vista el id del ciclo lectivo pasado por la url
						$datos['idCicloLectivoSel'] = $idCicloLectivo;
					}
					
					//Le paso a la vista el id del turno
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division
					$datos['idDivisionSel'] = $idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los cursos, divisiones y asignaturas
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion1 = "";
					$restriccion2 = "";
					$restriccion3 = "";
					$restriccion4 = "";
					$restriccion5 = "";
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							$restriccion1 = " AND curso.idCicloLectivo=".$cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							$restriccion1 = " AND curso.idCicloLectivo=0";
						}
					}else{
						$restriccion1 = " AND curso.idCicloLectivo=".$idCicloLectivo;					
					}
					
					if($idTurno!=0){
						$restriccion2 = " AND curso.idTurno=".$idTurno;
						$restriccion5 = " AND asignatura.idTurno=".$idTurno;
					}
					
					$restriccion3 = " AND division.idCurso=".$idCurso;
					$restriccion4 = " AND asignatura.idDivision=".$idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los cursos registrados para pedirle un listado con todos ellos
					$this->load->model('m_curso');
					
					//Busco todos los cursos activos segun las restricciones
					$listadoCursos = $this->m_curso->buscarActivos($restriccion1.$restriccion2);
					
					//Le paso el listado de todos los cursos a la vista para que los muestre en un combo de filtrado
					$datos['cursos'] = $listadoCursos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las divisiones registradas para pedirle un listado con todas ellas
					$this->load->model('m_division');
					
					//Busco todas las divisiones activas segun las restricciones
					$listadoDivisiones = $this->m_division->buscarActivos($restriccion1.$restriccion2.$restriccion3);
					
					//Le paso el listado de todas las divisiones a la vista para que los muestre en un combo
					$datos['divisiones'] = $listadoDivisiones;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las asignaturas registradas para pedirle un listado con todos ellos
					$this->load->model('m_asignatura');
					
					//Busco todos las asiganturas segun las restricciones
					$listadoAsignaturas = $this->m_asignatura->buscar($restriccion1.$restriccion3.$restriccion4.$restriccion5);
					
					//Le paso el listado de todas las asignaturas a la vista para que los muestre en una tabla
					$datos['asignaturas'] = $listadoAsignaturas;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra la tabla de asignaturas y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_asignaturas', $datos, true);
					
					//Cargo la vista principal con los datos de la vista consultar asignaturas
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El o los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para consultar los registros.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	//Sirve para eliminar la asignatura pasada por la url
	//El segundo, tercer, cuarto y quinto parametro indica si hay que filtrar las asignaturas en el resultado
	function eliminar($idAsignatura=null, $idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idAsignatura pasado sea numerico y mayor que cero. Ademas que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el idTurno, idCurso e idDivision.
			if(is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de las asignaturas registradas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura que hay que eliminar
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos registrados
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones registradas
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que la asignatura sea existe. Ademas que el ciclo lectivo pasado por la url sea existente, o bien el ciclo lectivo sea cero. Lo mismo para el turno, curso y division
				if($asignatura->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					//Elimino al archivo de la asignatura si es que tenia uno asignado
					if($asignatura->row()->idArchivo != 0){
						//Cargo el modelo donde estan los datos de los archivos registrados
						$this->load->model('m_archivo');
						
						//Elimino al archivo de la asignatura
						$respuesta = $this->m_archivo->eliminar($asignatura->row()->idArchivo, $this->session->userdata('idUsuarioLog'));
					}
					
					//Elimino a la asignatura pasada por la url
					$respuesta = $this->m_asignatura->eliminar($idAsignatura, $this->session->userdata('idUsuarioLog'));
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos activos
					$listadoTurnos = $this->m_turno->buscarActivos();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo de filtrado
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo de filtrado
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Si el ciclo lectivo pasado por la url es igual a cero entonces hay que seleccionar el ciclo vigente, en caso contrario el que haya sido pasado
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							//Le paso a la vista el id del ciclo lectivo vigente
							$datos['idCicloLectivoSel'] = $cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							//No hay ciclo lectivo seleccionado ni vigente
							$datos['idCicloLectivoSel'] = 0;
						}
					}else{
						//Le paso a la vista el id del ciclo lectivo pasado por la url
						$datos['idCicloLectivoSel'] = $idCicloLectivo;
					}
					
					//Le paso a la vista el id del turno
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division
					$datos['idDivisionSel'] = $idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los cursos, divisiones y asignaturas
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion1 = "";
					$restriccion2 = "";
					$restriccion3 = "";
					$restriccion4 = "";
					$restriccion5 = "";
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							$restriccion1 = " AND curso.idCicloLectivo=".$cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							$restriccion1 = " AND curso.idCicloLectivo=0";
						}
					}else{
						$restriccion1 = " AND curso.idCicloLectivo=".$idCicloLectivo;					
					}
					
					if($idTurno!=0){
						$restriccion2 = " AND curso.idTurno=".$idTurno;
						$restriccion5 = " AND asignatura.idTurno=".$idTurno;
					}
					
					$restriccion3 = " AND division.idCurso=".$idCurso;
					$restriccion4 = " AND asignatura.idDivision=".$idDivision;
										
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los cursos registrados para pedirle un listado con todos ellos
					$this->load->model('m_curso');
					
					//Busco todos los cursos activos segun las restricciones
					$listadoCursos = $this->m_curso->buscarActivos($restriccion1.$restriccion2);
					
					//Le paso el listado de todos los cursos a la vista para que los muestre en un combo de filtrado
					$datos['cursos'] = $listadoCursos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las divisiones registradas para pedirle un listado con todas ellas
					$this->load->model('m_division');
					
					//Busco todas las divisiones activas segun las restricciones
					$listadoDivisiones = $this->m_division->buscarActivos($restriccion1.$restriccion2.$restriccion3);
					
					//Le paso el listado de todas las divisiones a la vista para que los muestre en un combo
					$datos['divisiones'] = $listadoDivisiones;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las asignaturas registradas para pedirle un listado con todos ellos
					$this->load->model('m_asignatura');
					
					//Busco todos las asiganturas segun las restricciones
					$listadoAsignaturas = $this->m_asignatura->buscar($restriccion1.$restriccion3.$restriccion4.$restriccion5);
					
					//Le paso el listado de todas las asignaturas a la vista para que los muestre en una tabla
					$datos['asignaturas'] = $listadoAsignaturas;
					
					//Cargo la vista donde se muestra la tabla de asignaturas
					$this->load->view('v_asignaturas', $datos);
				} else {
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					echo("No existe el registro seleccionado para borrar.");
				}
			} else {
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				echo("No se ha pasado los parametros necesarios para borrar un registro.");
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			echo("No tiene permiso para borrar un registro.");
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Abre la pantalla con el formulario para crear una asignatura nueva
	function abrirPantallaCrear($idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno, curso y division
			if(is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo que hay que crearle una asignatura
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno que hay que crearle una asignatura
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos
				$this->load->model('m_curso');
				
				//Busco al curso que hay que crearle una asignatura
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division que hay que crearle una asignatura
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno, curso y division
				if(($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos activos
					$listadoTurnos = $this->m_turno->buscarActivos();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo seleccionable
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo seleccionable
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Si el ciclo lectivo pasado por la url es igual a cero entonces hay que seleccionar el ciclo vigente, en caso contrario el que haya sido pasado
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							//Le paso a la vista el id del ciclo lectivo vigente
							$datos['idCicloLectivoSel'] = $cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							//No hay ciclo lectivo seleccionado ni vigente
							$datos['idCicloLectivoSel'] = 0;
						}
					}else{
						//Le paso a la vista el id del ciclo lectivo pasado por la url
						$datos['idCicloLectivoSel'] = $idCicloLectivo;
					}
					
					//Le paso a la vista el id del turno
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso y el curso
					$datos['idCursoSel'] = $idCurso;
					$datos['cursoSel'] = $curso;
					
					//Le paso a la vista el id de la division
					$datos['idDivisionSel'] = $idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los cursos, divisiones y asignaturas
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion1 = "";
					$restriccion2 = "";
					$restriccion3 = "";
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							$restriccion1 = " AND curso.idCicloLectivo=".$cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							$restriccion1 = " AND curso.idCicloLectivo=0";
						}
					}else{
						$restriccion1 = " AND curso.idCicloLectivo=".$idCicloLectivo;					
					}
					
					$restriccion2 = " AND division.idCurso=".$idCurso;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los cursos registrados para pedirle un listado con todos ellos
					$this->load->model('m_curso');
					
					//Busco todos los cursos activos segun las restricciones
					$listadoCursos = $this->m_curso->buscarActivos($restriccion1);
					
					//Le paso el listado de todos los cursos a la vista para que los muestre en un combo
					$datos['cursos'] = $listadoCursos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las divisiones registrados para pedirle un listado con todos ellos
					$this->load->model('m_division');
					
					//Busco todos las divisiones activas segun las restricciones
					$listadoDivisiones = $this->m_division->buscarActivos($restriccion1 . $restriccion2);
					
					//Le paso el listado de todas las divisiones a la vista para que los muestre en un combo
					$datos['divisiones'] = $listadoDivisiones;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los espacios escolares registrados para pedirle un listado con todos ellos
					$this->load->model('m_espacio_escolar');
					
					//Busco todos los espacios escolares activos
					$listadoEspaciosEscolares = $this->m_espacio_escolar->buscarActivos();
					
					//Le paso el listado de todos los espacios escolares a la vista para que los muestre en un combo
					$datos['espaciosEscolares'] = $listadoEspaciosEscolares;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los planes de estudios registrados para pedirle un listado con todos ellos
					$this->load->model('m_plan_estudio');
					
					//Busco todos los planes de estudios activos
					$listadoPlanesEstudios = $this->m_plan_estudio->buscarActivos();
					
					//Le paso el listado de todos los planes de estudios a la vista para que los muestre en un combo
					$datos['planesEstudios'] = $listadoPlanesEstudios;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para crear una asignatura y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_asignaturas_crear', $datos, true);
					
					//Cargo la vista principal con los datos de la vista para crear una asignatura
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El registro seleccionado no existe
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado los parametros minimos necesarios para crear un registro
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo crea realmente la asignatura. La respuesta se muestra en un iframe dentro del formulario
	function crear(){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post la division, nombre, abreviatura, dificultad y el estado de la asignatura a crear.
			if(is_numeric($this->input->post('division',true)) && $this->input->post('division',true)>0 && 
			   is_numeric($this->input->post('turno',true)) && $this->input->post('turno',true)>=0 && 
			   is_numeric($this->input->post('espacioEscolar',true)) && $this->input->post('espacioEscolar',true)>=0 && 
			   is_numeric($this->input->post('planEstudio',true)) && $this->input->post('planEstudio',true)>=0 && 
			   $this->input->post('nombre',true) && $this->input->post('abreviatura',true) != "" && 
			   is_numeric($this->input->post('dificultad',true)) && $this->input->post('dificultad',true)>=0 && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){		
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division que hay que crearle una asignatura
				$division = $this->m_division->get($this->input->post('division',true));
				
				//Cargo el modelo donde estan los datos de los cursos
				$this->load->model('m_curso');
				
				//Busco al curso de la division
				$curso = $this->m_curso->get($division->row()->idCurso);
				
				//Cargo el modelo donde estan los datos de los espacios escolares
				$this->load->model('m_espacio_escolar');
				
				//Busco al espacio escolar para comprobar que exista
				$espacioEscolar = $this->m_espacio_escolar->get($this->input->post('espacioEscolar',true));
				
				//Cargo el modelo donde estan los datos de los planes estudios
				$this->load->model('m_plan_estudio');
				
				//Busco al plan de estudio para comprobar que exista
				$planEstudio = $this->m_plan_estudio->get($this->input->post('planEstudio',true));
				
				//Tercera comprobacion: Que la division pasado por la url sea existente, lo mismo para el curso. Que el espacio escolar y el plan de estudios sean existentes, o sus id sean igual a cero.
				if($division->num_rows() == 1 && $curso->num_rows() == 1 && ($espacioEscolar->num_rows() == 1 || $this->input->post('espacioEscolar',true)==0) && ($planEstudio->num_rows() == 1 || $this->input->post('planEstudio',true)==0)){
					//Cargo el modelo donde estan los datos de los archivos
					$this->load->model('m_archivo');
					
					//Detalles de las configuraciones del archivo a subir
					$config['upload_path'] = "./archivosPrivados-FPCL3QFs6DkBHihS3aJI/asignaturas";
					$config['allowed_types'] = 'gif|jpg|png|jpeg|doc|docx|xls|xlsx|pdf|ppt|xppt|pps';
					$config['max_size'] = '10000';
					$this->load->library('upload', $config);
					
					$ultimoIdInsertado = 0;
					$archivo = '';
					//Si no se subio el archivo hacer lo siguiente
					if (!$this->upload->do_upload('archivo')){
						$mensaje = 'No se ha subido ning\u00fan archivo o su archivo est\u00e1 fuera de las especificaciones.';
					//Si se subio el archivo hacer lo siguiente
					}else{
						//Datos del archivo subido
						$upload_data = $this->upload->data();
						$archivo = $upload_data['file_name'];
						$extensionArchivo = $upload_data['file_ext'];
						
						//Mensaje que se va a mostrar
						$mensaje = 'Se ha subido el archivo correctamente.';
						
						// Determine Content Type
						switch ($upload_data['file_ext']){
						  case ".pdf": $ctype="application/pdf"; break;
						  case ".exe": $ctype="application/octet-stream"; break;
						  case ".zip": $ctype="application/zip"; break;
						  case ".doc": $ctype="application/msword"; break;
						  case ".xls": $ctype="application/vnd.ms-excel"; break;
						  case ".ppt": $ctype="application/vnd.ms-powerpoint"; break;
						  case ".gif": $ctype="image/gif"; break;
						  case ".png": $ctype="image/png"; break;
						  case ".jpeg":
						  case ".jpg": $ctype="image/jpg"; break;
						  default: $ctype="application/force-download";
						}
						
						//Creamos el archivo en la base de datos
						$resultado = $this->m_archivo->crear(random_string('alnum',20).$upload_data['file_ext'], $this->session->userdata('idUsuarioLog'), "archivosPrivados-FPCL3QFs6DkBHihS3aJI/asignaturas", $upload_data['file_name'], $upload_data['file_ext'], $ctype, 1, 1, $this->session->userdata('idUsuarioLog'));
						$ultimoIdInsertado = $this->db->insert_id();
					}
					
					//Cargo el modelo donde estan los datos de las asignatura
					$this->load->model('m_asignatura');
					
					if($this->input->post('turno',true)>0)
						$idTurnoFinal = $this->input->post('turno',true);
					else
						$idTurnoFinal = $curso->row()->idTurno;
						
					if($this->input->post('espacioEscolar',true)>0)
						$idEspacioEscolarFinal = $this->input->post('espacioEscolar',true);
					else
						$idEspacioEscolarFinal = $division->row()->idEspacioEscolar;
					
					//Creamos la asignatura
					$resultado = $this->m_asignatura->crear(random_string('alnum',20), $this->input->post('division',true), $this->input->post('planEstudio',true), $idEspacioEscolarFinal, $idTurnoFinal, $this->input->post('nombre',true), $this->input->post('abreviatura',true), $this->input->post('colorpicker1',true), $this->input->post('colorpicker2',true), $this->input->post('dificultad',true), $this->input->post('canalDeStreaming'), $ultimoIdInsertado, $this->input->post('descripcion',true), $this->input->post('estado',true), $this->session->userdata('idUsuarioLog'));
					
					if($resultado == 1){
						echo("<script> alert('La asignatura: ".$this->input->post('nombre',true)." se ha creado correctamente.');</script>");
					}else{
						echo("<script> alert('La asignatura: ".$this->input->post('nombre',true)." no se ha creado. Ha habido un error.');</script>");
					}
				} else {
					//Los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
				}
			} else {
				//No se han pasado los parametros minimos necesarios para crear un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo abre la pantalla con los datos de la asignatura pasada por la url
	function abrirPantallaModificar($idAsignatura=null, $idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idAsignatura pasado sea numerico y mayor que cero. Ademas que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno, curso y division.
			if(is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de las asignaturas registradas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura que hay que modificar
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos registrados
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones registradas
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que la asignatura sea existente. Ademas que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno, curso y division.
				if($asignatura->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					//Le paso la asignatura a modificar a la vista
					$datos['asignaturaSel'] = $asignatura;
					
					//Le paso el ciclo lectivo, turno, curso y division que estaban seleccionados en la pantalla consultar
					$datos['idCicloLectivoSel'] = $idCicloLectivo;
					$datos['idTurnoSel'] = $idTurno;
					$datos['idCursoSel'] = $idCurso;
					$datos['idDivisionSel'] = $idDivision;
					
					//Busco a la asignatura siguiente de la que hay que modificar
					$idAsignaturaSig = $this->m_asignatura->getContiguo($idAsignatura,1, $idCicloLectivo, $idTurno, $idCurso, $idDivision);
					
					//Le paso la division siguiente de la que hay que modificar a la vista
					$datos['idAsignaturaSig'] = $idAsignaturaSig;
					
					//Busco a la asignatura anterior de la que hay que modificar
					$idAsignaturaAnt = $this->m_asignatura->getContiguo($idAsignatura,-1, $idCicloLectivo, $idTurno, $idCurso, $idDivision);
									
					//Le paso la asignatura anterior del que hay que modificar a la vista
					$datos['idAsignaturaAnt'] = $idAsignaturaAnt;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos y no solo los activos
					$listadoTurnos = $this->m_turno->buscar();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo seleccionable
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo seleccionable
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones sobre los cursos. Hay que llenar el combo de cursos segun el ciclo y turno seleccionados
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion = "";
					if($asignatura->row()->idCicloLectivo!=0){
						$restriccion = " AND curso.idCicloLectivo=".$asignatura->row()->idCicloLectivo;
					}
					
					//Busco todos los cursos segun las restricciones correspondientes, tanto activos como inactivos, menos los borrados(-1)
					$listadoCursos = $this->m_curso->buscar($restriccion);
					
					//Le paso el listado de todos los cursos a la vista para que los muestre en un combo
					$datos['cursos'] = $listadoCursos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones sobre las divisiones. Hay que llenar el combo de divisiones segun el curso seleccionado
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion = "";
					if($asignatura->row()->idCurso!=0){
						$restriccion = " AND curso.idCurso=".$asignatura->row()->idCurso;
					}
					
					//Busco todas las divisiones segun las restricciones correspondientes, tanto activos como inactivos, menos los borrados(-1)
					$listadoDivisiones = $this->m_division->buscar($restriccion);
					
					//Le paso el listado de todas las divisiones a la vista para que los muestre en un combo
					$datos['divisiones'] = $listadoDivisiones;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los espacios escolares registrados para pedirle un listado con todos ellos
					$this->load->model('m_espacio_escolar');
					
					//Busco todos los espacios escolares
					$listadoEspaciosEscolares = $this->m_espacio_escolar->buscar();
					
					//Le paso el listado de todos los espacios escolares a la vista para que los muestre en un combo
					$datos['espaciosEscolares'] = $listadoEspaciosEscolares;
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
					
					//Cargo el modelo donde estan los datos de los planes de estudios registrados para pedirle un listado con todos ellos
					$this->load->model('m_plan_estudio');
					
					//Busco todos los planes de estudios
					$listadoPlanesEstudios = $this->m_plan_estudio->buscar();
					
					//Le paso el listado de todos los planes de estudios a la vista para que los muestre en un combo
					$datos['planesEstudios'] = $listadoPlanesEstudios;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para modificar una asignatura y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_asignaturas_modificar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para modificar una division
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Este metodo realmente modifica los datos de una asignatura
	function modificar($idAsignatura=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post la division, nombre, abreviatura, dificultad y el estado de la asignatura a modificar. 
			//Ademas que se haya pasado por la url el id de la asignatura a modificar
			if(is_numeric($idAsignatura) && $idAsignatura>0 && is_numeric($this->input->post('division',true)) && $this->input->post('division',true)>0 && 
			   is_numeric($this->input->post('turno',true)) && $this->input->post('turno',true)>0 && 
			   is_numeric($this->input->post('espacioEscolar',true)) && $this->input->post('espacioEscolar',true)>=0 && 
			   is_numeric($this->input->post('planEstudio',true)) && $this->input->post('planEstudio',true)>=0 && 
			   $this->input->post('nombre',true) && $this->input->post('abreviatura',true) != "" && 
			   is_numeric($this->input->post('dificultad',true)) && $this->input->post('dificultad',true)>=0 &&
			   ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){		
				//Cargo el modelo donde estan los datos de las asignaturas
				$this->load->model('m_asignatura');
				
				//Busco a la asignatura que hay que modificar
				$asignatura = $this->m_asignatura->get($idAsignatura);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que realmente exista
				$division = $this->m_division->get($this->input->post('division',true));
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que realmente exista
				$turno = $this->m_turno->get($this->input->post('turno',true));
				
				//Cargo el modelo donde estan los datos de los espacios escolares
				$this->load->model('m_espacio_escolar');
				
				//Busco al espacio escolar para comprobar que exista
				$espacioEscolar = $this->m_espacio_escolar->get($this->input->post('espacioEscolar',true));
				
				//Cargo el modelo donde estan los datos de los planes estudios
				$this->load->model('m_plan_estudio');
				
				//Busco al plan de estudio para comprobar que exista
				$planEstudio = $this->m_plan_estudio->get($this->input->post('planEstudio',true));
				
				//Tercera comprobacion: Que la asignatura, division y turno pasado por la url sea existente. Que el espacio escolar y el plan de estudio sean existentes, o los id sean igual a cero.
				if($asignatura->num_rows() == 1 && $division->num_rows() == 1 && $turno->num_rows() == 1 && ($espacioEscolar->num_rows() == 1 || $this->input->post('espacioEscolar',true)==0) && ($planEstudio->num_rows() == 1 || $this->input->post('planEstudio',true)==0)){
					//Guardamos el id del archivo actual. Cero si no tiene asignado ninguno
					$idArchivoActual = $asignatura->row()->idArchivo;					
					
					//Resultado 0 quiere decir que nada se ha modificado
					$resultado = 0;
					
					//Cargo el modelo donde estan los datos de los archivos
					$this->load->model('m_archivo');
					
					//Detalles de las configuraciones del archivo a subir
					$config['upload_path'] = "./archivosPrivados-FPCL3QFs6DkBHihS3aJI/asignaturas";
					$config['allowed_types'] = 'gif|jpg|png|jpeg|doc|docx|xls|xlsx|pdf|ppt|xppt|pps';
					$config['max_size'] = '10000';
					$this->load->library('upload', $config);
					
					$archivo = '';
					//Si no se subio el archivo hacer lo siguiente
					if (!$this->upload->do_upload('archivo')){
						$mensaje = 'No se ha subido ning\u00fan archivo o su archivo est\u00e1 fuera de las especificaciones.';
					//Si se subio el archivo hacer lo siguiente
					}else{
						//Datos del archivo subido
						$upload_data = $this->upload->data();
						$archivo = $upload_data['file_name'];
						$extensionArchivo = $upload_data['file_ext'];
						
						//Mensaje que se va a mostrar
						$mensaje = 'Se ha subido el archivo correctamente.';
						
						// Determine Content Type
						switch ($upload_data['file_ext']) {
						  case ".pdf": $ctype="application/pdf"; break; 
						  case ".exe": $ctype="application/octet-stream"; break; 
						  case ".zip": $ctype="application/zip"; break; 
						  case ".doc": $ctype="application/msword"; break; 
						  case ".xls": $ctype="application/vnd.ms-excel"; break; 
						  case ".ppt": $ctype="application/vnd.ms-powerpoint"; break; 
						  case ".gif": $ctype="image/gif"; break; 
						  case ".png": $ctype="image/png"; break; 
						  case ".jpeg": 
						  case ".jpg": $ctype="image/jpg"; break; 
						  default: $ctype="application/force-download"; 
						}
						
						//Si ya tenia archivo lo modificamos, si no tenia, creamos un nuevo registro en la base de datos
						$nuevoHash = random_string('alnum',20).$upload_data['file_ext'];
																		
						if($idArchivoActual != 0){
							//Modificamos el archivo en la base de datos
							$resultado += $this->m_archivo->modificar($idArchivoActual, $nuevoHash, $upload_data['file_name'], $upload_data['file_ext'], $ctype);
						}else{
							//Creamos el archivo en la base de datos
							$resultado += $this->m_archivo->crear($nuevoHash, $this->session->userdata('idUsuarioLog'), "archivosPrivados-FPCL3QFs6DkBHihS3aJI/asignaturas", $upload_data['file_name'], $upload_data['file_ext'], $ctype, 1, 1, $this->session->userdata('idUsuarioLog'));
							$idArchivoActual = $this->db->insert_id();
						}
					}					
					
					//Modificamos la asignatura
					$resultado += $this->m_asignatura->modificar($idAsignatura, $this->input->post('division',true), $this->input->post('planEstudio',true), $this->input->post('espacioEscolar',true), $this->input->post('turno',true), $this->input->post('nombre',true), $this->input->post('abreviatura',true), $this->input->post('colorpicker1',true), $this->input->post('colorpicker2',true), $this->input->post('dificultad',true), $this->input->post('canalDeStreaming'), $idArchivoActual, $this->input->post('descripcion',true), $this->input->post('estado',true));
					
					if($archivo != '')	echo("<script> window.parent.actualizarArchivo('".base_url() .'archivo/hash/'.$nuevoHash."');</script>");
					
					if($resultado >= 1){
						echo("<script> alert('La asignatura: ".$this->input->post('nombre',true)." se ha modificado correctamente.');</script>");
					}else{
						echo("<script> alert('La asignatura: ".$this->input->post('nombre',true)." no se ha modificado. Ha habido un error o los datos permanecieron iguales.');</script>");
					}
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();			
		}
	}
	
	//Esto metodo SOLO se puede llamar con ajax
	//Este metodo se usa en el abm asignaciones para crear o modificar una asignacion. Se llama cuando se cambia la seleccion de la division y hay que actualizar las asignaturas.
	function filtrar($estado=null, $idDivision=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion
		if($this->session->userdata('sesionIniciada') == 'Si'){
			//Segunda comprobacion: Que idDivision sea numerico y mayor o igual que cero. Que estado sea igual a 1 o 0.
			if(is_numeric($idDivision) && $idDivision>=0 && is_numeric($estado) && ($estado==0 || $estado==1)){
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que division pasado por la url sea existente o bien el id sea igual a cero.
				if($division->num_rows() == 1 || $idDivision==0){
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////				
					$restriccion = " AND asignatura.idDivision=".$idDivision;
					
					if($estado==1)	$restriccion .= " AND asignatura.estado=".$estado;
					
					//Cargo el modelo donde estan los datos de las asignaturas registradas para pedirle un listado con todas ellas segun las restricciones
					$this->load->model('m_asignatura');
					
					//Busco todas asignaturas activas de la division correspondiente
					$listadoAsignaturas = $this->m_asignatura->buscar($restriccion);
					
					//Le paso el listado de todas las asignaturas a la vista para que los muestre en un combo
					$datos['asignaturas'] = $listadoAsignaturas;
					
					//Cargo la vista donde se arma el combo
					$this->load->view('v_asignaturas_select',$datos);
				} else {
					//No se han pasado los parametros minimos necesarios.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();			
				}
			} else {
				//No se han pasado los parametros minimos necesarios.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();			
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();			
		}
	}
}